package cn.fj.xiaowei.main.common.response.config;

import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 解决跨域的自动配置类
 */
@AutoConfiguration
@ConditionalOnClass(WebMvcConfigurer.class)
public class CorsAutoConfig implements WebMvcConfigurer {

    /**
     * 通过配置解决跨域
     *
     * @param registry 跨域注册对象
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry
                // 配置哪些请求路径允许跨域
                .addMapping("/**")
                // 是否发送 Cookie
                .allowCredentials(true)
                // 允许跨域的请求来源，设置 Access-Control-Allow-Origin
                .allowedOriginPatterns("*")
                // 允许跨域的请求方法类型
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                // 允许跨域的请求头信息，设置 Access-Control-Allow-Headers
                .allowedHeaders("*")
                // 暴露的头信息，设置 Access-Control-Expose-Headers，默认空
                .exposedHeaders("*");
    }

}
